if select(2, UnitClass("player")) ~= "DEATHKNIGHT" then return end
local GT = LibStub:GetLibrary("LibGratuity-3.0")
local GetSpellInfo = GetSpellInfo
local GetInventoryItemLink = GetInventoryItemLink
local GetShapeshiftForm = GetShapeshiftForm
local IsEquippedItem = IsEquippedItem
local select = select
local UnitPower = UnitPower
local UnitHealth = UnitHealth
local UnitHealthMax = UnitHealthMax
local UnitIsUnit = UnitIsUnit
local UnitCreatureType = UnitCreatureType
local UnitLevel = UnitLevel
local UnitDebuff = UnitDebuff
local string_match = string.match
local string_lower = string.lower
local string_find = string.find
local string_split = string.split
local OffhandHasWeapon = OffhandHasWeapon
local math_floor = math.floor
local tonumber = tonumber

--Spell hit abilities: Icy Touch, Blood Boil, Death Coil, Death and Decay, Howling Blast. (Unholy Blight, Corpse Explosion?)

function DrDamage:PlayerData()
	--Health updates
	self.TargetHealth = { [1] = 0.351 }
	--Class specials
	self.ClassSpecials[GetSpellInfo(48743)] = function()
		return 0.4 * UnitHealthMax("player"), 0.4, 1.0, 0.3
	end
	--Special Calculation
	local necrosis = GetSpellInfo(51465)
	self.Calculation["Necrosis"] = function ( calculation, value )
		calculation.extraDamage = 0
		calculation.extraAvg = value
		calculation.extraAvgChance = 1
		calculation.extraName = necrosis
		if OffhandHasWeapon() then
			calculation.extraAvg_O = value
		end
	end
	self.Calculation["Two-Handed Weapon Specialization"] = function( calculation, value )
		if self:GetNormM() == 3.3 and calculation.WeaponDamage then
			calculation.wDmgM = calculation.wDmgM * (1 + value)
			calculation.dmgM_dd = calculation.dmgM_dd * (1 + value)
		end
	end
	self.Calculation["Nerves of Cold Steel"] = function( calculation, value )
		if self:GetNormM() == 1.7 or self:GetNormM() == 2.4 then
			calculation.hitPerc = calculation.hitPerc + value
		end
	end
	self.Calculation["Wandering Plague"] = function( calculation, value )
		calculation.E_canCrit = true
		calculation.E_critM = value
	end	
	
	local diseaseCount = 0
	--General
	self.Calculation["DEATHKNIGHT"] = function( calculation, ActiveAuras, BuffTalentRanks, spell, baseSpell )
		diseaseCount = 0
		if ActiveAuras["Frost Fever"] then diseaseCount = 1 end
		if ActiveAuras["Blood Plague"] then diseaseCount = diseaseCount + 1 end
		if ActiveAuras["Crypt Fever"] then diseaseCount = diseaseCount + 1 end
		if ActiveAuras["Ebon Plague"] then diseaseCount = diseaseCount + 1 end
	
		if not baseSpell.Melee then
			calculation.spellDmgM = 0
			calculation.spellDmgM_dot = 0
			calculation.critM = calculation.critM + 0.5

			if calculation.instant and GetShapeshiftForm() == 3 then
				calculation.castTime = 1
			end
		else
			if BuffTalentRanks["Impurity"] then
				if calculation.APBonus then
					calculation.APBonus = calculation.APBonus * (1 + BuffTalentRanks["Impurity"])
				end
				if calculation.extraDamage then
					calculation.extraDamage = calculation.extraDamage * (1 + BuffTalentRanks["Impurity"])
				end
			end
			if baseSpell.SpellCrit then
				calculation.critM = calculation.critM + 0.5
			end
		end
		if not calculation.healingSpell then
			if BuffTalentRanks["Tundra Stalker"] and ActiveAuras["Frost Fever"] then
				calculation.dmgM = calculation.dmgM + (1 * BuffTalentRanks["Tundra Stalker"])
			end
			if BuffTalentRanks["Rage of Rivendare"] and ActiveAuras["Blood Plague"]  then
				calculation.dmgM = calculation.dmgM + (1 * BuffTalentRanks["Rage of Rivendare"])
			end
			if BuffTalentRanks["Merciless Combat"] and UnitHealth("target") ~= 0 and (UnitHealth("target") / UnitHealthMax("target")) <= 0.35 then
				calculation.dmgM_dd = calculation.dmgM_dd + (1 * BuffTalentRanks["Merciless Combat"])
			end
			if ActiveAuras["Hysteria"] and not calculation.physical and (calculation.group ~= "Physical") then
				calculation.dmgM = calculation.dmgM / 1.2
			end			
		end
	end
	
	--Spell Specific
	local bcb = GetSpellInfo(49219)
	local undead = string_lower(GetSpellInfo(5502))
	self.Calculation["Attack"] = function( calculation, _, BuffTalentRanks )
		--Rune of Lichbane (3366) 2% extra weapon damage as Fire damage or 4% versus Undead targets.
		--Rune of Razorice (3370) 2% extra weapon damage as Frost damage	
		local mh = GetInventoryItemLink("player",16)
		local _, _, mrune = mh and string_split(":",mh)
		if mrune == "3366" then
			local min, max = self:WeaponDamage(calculation, true)
			local target = UnitCreatureType("target")
			if target and string_find(undead,string_lower(target)) then
				calculation.extraDamBonus = 0.02 * (min+max)
			else
				calculation.extraDamBonus = 0.01 * (min+max)
			end
			calculation.extraDamage = 0
		elseif mrune == "3370" then
			local min, max = self:WeaponDamage(calculation, true)
			calculation.extraDamage = 0
			calculation.extraDamBonus = 0.01 * (min+max)
		end
		if OffhandHasWeapon() then
			local _, _, orune = string_split(":",GetInventoryItemLink("player",17))
			if orune == "3366" then
				local _, _, min, max = self:WeaponDamage(calculation, true)
				local target = UnitCreatureType("target")
				if target and string_find(undead,string_lower(target)) then
					calculation.extraDamBonus_O = 0.02 * (min+max)
				else
					calculation.extraDamBonus_O = 0.01 * (min+max)
				end
				calculation.extraDamage = 0
			elseif orune == "3370" then
				local _, _, min, max = self:WeaponDamage(calculation, true)
				calculation.extraDamage = 0
				calculation.extraDamBonus_O = 0.01 * (min+max)
			end			
		end
		if BuffTalentRanks["Blood-Caked Blade"] then	
			if not calculation.unarmed then
				calculation.extraDamage = 0
				calculation.extraWeaponDamageChance = BuffTalentRanks["Blood-Caked Blade"]
				calculation.extraWeaponDamage = 0.25 + diseaseCount * 0.125
				calculation.extraWeaponDamageM = true
				calculation.extraName = (calculation.extraName and (calculation.extraName .. "+") or "") .. bcb
			end
			if OffhandHasWeapon() then
				calculation.extraWeaponDamage_O = 0.25 + diseaseCount * 0.125
				if calculation.unarmed then
					calculation.extraDamage = 0
					calculation.extraWeaponDamageChance = BuffTalentRanks["Blood-Caked Blade"]
					calculation.extraWeaponDamageM_O = true
					calculation.extraName = (calculation.extraName and (calculation.extraName .. "+") or "") .. bcb
				end
			end			
		end
	end
	self.Calculation["Blood Strike"] = function( calculation, ActiveAuras, _, _, baseSpell )
		calculation.dmgM = calculation.dmgM * (1 + diseaseCount * baseSpell.bonusPercent * ((self:GetSetAmount( "T8 - Damage" ) >= 4) and 1.2 or 1))
		if self:HasGlyph(59332) and ActiveAuras["Snare"] then
			calculation.dmgM = calculation.dmgM * 1.2
		end
	end
	self.Calculation["Scourge Strike"] = function( calculation, _, _, _, baseSpell )
		calculation.dmgM = calculation.dmgM * (1 + diseaseCount * baseSpell.bonusPercent * ((self:GetSetAmount( "T8 - Damage" ) >= 4) and 1.2 or 1))
	end
	self.Calculation["Heart Strike"] = self.Calculation["Scourge Strike"]
	
	self.Calculation["Obliterate"] = function( calculation, _, _, _, baseSpell )
		--Glyph of Obliterate
		calculation.dmgM = calculation.dmgM * (self:HasGlyph(58671) and 1.2 or 1) * (1 + diseaseCount * baseSpell.bonusPercent * ((self:GetSetAmount( "T8 - Damage" ) >= 4) and 1.2 or 1))
	end
	
	self.Calculation["Blood Boil"] = function( calculation, ActiveAuras, BuffTalentRanks, spell )
		if ActiveAuras["Blood Plague"] or ActiveAuras["Frost Fever"] then
			calculation.minDam = calculation.minDam + spell.diseaseBonus
			calculation.maxDam = calculation.maxDam + spell.diseaseBonus
			calculation.spellAPBonus = calculation.spellAPBonus + 0.035 * (1 + (BuffTalentRanks["Impurity"] or 0))
		end
	end
	local ff = GetSpellInfo(59921)
	self.Calculation["Icy Touch"] = function( calculation, _, BuffTalentRanks )
		calculation.extra = 5 * 0.32 * UnitLevel("player")
		calculation.extraName = ff
		if BuffTalentRanks["Glacier Rot"] and diseaseCount > 0 then
			calculation.dmgM_dd = calculation.dmgM_dd * (1 + BuffTalentRanks["Glacier Rot"])
		end
	end
	self.Calculation["Howling Blast"] = function( calculation, _, BuffTalentRanks, spell )
		if BuffTalentRanks["Glacier Rot"] and diseaseCount > 0 then
			calculation.dmgM_dd = calculation.dmgM_dd * (1 + BuffTalentRanks["Glacier Rot"])
		end
		--Glyph of Howling Blast
		if self:HasGlyph(63335) then
			calculation.extra = 5 * 0.32 * UnitLevel("player")
			calculation.extraName = ff
			calculation.extraDamage = 0.275 * (1 + (BuffTalentRanks["Impurity"] or 0))
		end
		
	end
	self.Calculation["Frost Strike"]  = function( calculation, _, BuffTalentRanks )
		if BuffTalentRanks["Glacier Rot"] and diseaseCount > 0 then
			calculation.dmgM = calculation.dmgM * (1 + BuffTalentRanks["Glacier Rot"])
		end
	end
	local bp = GetSpellInfo(59879)
	self.Calculation["Plague Strike"] = function( calculation, ActiveAuras, BuffTalentRanks )
		calculation.extra = 5 * 0.38875 * UnitLevel("player")
		calculation.extraName = bp
		--Glyph of Plague Strike
		if self:HasGlyph(58657) then
			calculation.dmgM = calculation.dmgM * 1.2
		end
		if BuffTalentRanks["Ebon Plaguebringer (Plague Strike)"] and ActiveAuras["Ebon Plague"] then
			calculation.dmgM_Extra = calculation.dmgM_Extra * (1 + BuffTalentRanks["Ebon Plaguebringer (Plague Strike)"])
		end
		if ActiveAuras["Hysteria"] then
			calculation.dmgM_Extra = calculation.dmgM_Extra / 1.2
		end
	end	
	self.Calculation["Death Coil"] = function( calculation )
		--Glyph of Dark Death
		if self:HasGlyph(63333) and not calculation.healingSpell then
			calculation.dmgM = calculation.dmgM * 1.15
		end
	end
	self.Calculation["Death and Decay"] = function( calculation )
		--Glyph of Death and Decay
		if self:HasGlyph(58629) then
			calculation.dmgM = calculation.dmgM * 1.2
		end
	end
	self.Calculation["Death Strike"] = function( calculation )
		--Glyph of Death Strike (Increase damage by 2% for every 2 RP, max of 25%)
		if self:HasGlyph(59336) then 
			local power = UnitPower("player", 6)
			if power > 25 then power = 25 end
			calculation.dmgM = calculation.dmgM * (1 + power/100)
		end
	end
	self.Calculation["Rune Strike"] = function( calculation )
		--Glyph of Rune Strike
		if self:HasGlyph(58669) then
			calculation.critPerc = calculation.critPerc + 10
		end
	end
	self.Calculation["Unholy Blight"] = function( calculation )
		--Glyph of Unholy Blight
		if self:HasGlyph(63332) then
			calculation.eDuration = calculation.eDuration + 10
		end
	end
	self.Calculation["Rune Tap"] = function( calculation, _, BuffTalentRanks )
		calculation.minDam = UnitHealthMax("player")
		calculation.maxDam = calculation.minDam
		calculation.dmgM = 0.1 * (self:HasGlyph(59327) and 1.1 or 1) * (1 + (BuffTalentRanks["Improved Rune Tap"] or 0))
	end
	self.Calculation["Summon Gargoyle"] = function( calculation )
		calculation.sHits = math_floor(10 / ((calculation.castTime / 1.5) * 2))
		calculation.spellAPBonus = (1/3) * calculation.sHits
		calculation.castTime = 10
		calculation.finalMod_M = 1 + (5/100) * 0.5
		
	end
    
	--Set Bonuses
	self.SetBonuses["T7 - Damage"] = 
		{ 39617, 39618, 39619 , 39620 , 39621, -- T7
		40550, 40552, 40554, 40556, 40557 }  -- T7.5
	self.SetBonuses["T7 - Defense"] = 
        	{ 39623, 39624, 39625, 39626, 39627,  -- T7
		40559, 40563, 40565, 40567, 40568 } -- T7.5
	self.SetBonuses["T8 - Damage"] =
		{ 45340, 45341, 45342, 45343, 45344,  -- T8
		46111, 46113, 46115, 46116, 46117 } -- T8.5
	self.SetBonuses["T8 - Defense"] =
		{ 45335, 45336, 45337, 45338, 45339,  -- T8
		46118, 46119, 46120, 46121, 46122 } -- T8.5
    
	--Set Effects
	self.SetBonuses["Scourge Strike"] = function ( calculation )
		if self:GetSetAmount( "T7 - Damage" ) >= 2 then
			calculation.critPerc = calculation.critPerc + 5
		end
	end
	self.SetBonuses["Obliterate"] = self.SetBonuses["Scourge Strike"]
	self.SetBonuses["Death Strike"] = self.SetBonuses["Scourge Strike"]
	
	self.SetBonuses["Plague Strike"] = function ( calculation )
		if self:GetSetAmount( "T7 - Defense" ) >= 2 then
			calculation.critPerc = calculation.critPerc + 10
		end
	end
	
	self.SetBonuses["Death Coil"] = function ( calculation )
		if self:GetSetAmount( "T8 - Damage" ) >= 2 then
			calculation.critPerc = calculation.critPerc + 8
		end
	end
	self.SetBonuses["Frost Strike"] = self.SetBonuses["Death Coil"]
	
	self.SetBonuses["Rune Strike"] = function ( calculation )
		if self:GetSetAmount( "T8 - Defense" ) >= 2 then
			calculation.dmgM = calculation.dmgM * 1.1
		end
	end
	
	--Relic Bonuses
	
	--Melee
	--Sigil of the Dark Rider
	self.RelicSlot["Blood Strike"] = { 39208, 90 }
	self.RelicSlot["Heart Strike"] = { 39208, 90 }
	--Sigil of Awareness
	self.RelicSlot["Obliterate"] ={ 40207, 336 } 
	self.RelicSlot["Death Strike"] = { 40207, 315 }
	--Sigil of Awareness, Sigil of Arthritic Binding
	self.RelicSlot["Scourge Strike"] = { 40207, 189, 40875, 91.35 }
	--Sigil of the Venegeful Heart
	self.RelicSlot["Frost Strike"] = { 45254, 380 } 
	
	--Caster (NOTE: default ModType for caster is spellpower, so here you need to specify either "Base" or "finalMod")
	--Sigil of the Frozen Conscience
	self.RelicSlot["Icy Touch"] = { 40822, 111, ModType1 = "Base" }
	-- Sigil of the Venegeful Heart, Sigil of the Wild Buck
	self.RelicSlot["Death Coil"] = { 45254, 380, 40867, 80, ModType1 = "Base", ModType2 = "Base" } 
	
--AURA
--Player
	--Killing Machine
	self.PlayerAura[GetSpellInfo(51124)] = { Spells = { [GetSpellInfo(45477)] = true, [GetSpellInfo(49184)] = true, [GetSpellInfo(49143)] = true }, Value = 100, ModType = "critPerc" }
	--Death Chill
	self.PlayerAura[GetSpellInfo(49796)] = { Spells = { [GetSpellInfo(45477)] = true, [GetSpellInfo(49184)] = true, [GetSpellInfo(49143)] = true, [GetSpellInfo(49020)] = true }, Value = 100, ModType = "critPerc" }
	--Bloody Vengeance
	self.PlayerAura[GetSpellInfo(50447)] = { School = { ["Damage Spells"] = true, ["Disease"] = true }, ModType = "Special", NoManual = true }
	--Cinderglacier
	self.PlayerAura[GetSpellInfo(53386)] = { School = { ["Frost"] = true, ["Shadow"] = true, }, Value = 0.2 }
	--Hysteria (needs to be divided out from multiplier)
	self.PlayerAura[GetSpellInfo(49016)] = { ActiveAura = "Hysteria", NoManual = true }		
--Target
	--Frost Vulnerability (Rune of Razorice)
	self.TargetAura[GetSpellInfo(51714)] = { School = "Frost", Apps = 5, Value = 0.01, SelfCast = true }
	--Frost Fever
	self.TargetAura[GetSpellInfo(55095)] = { ActiveAura = "Frost Fever", SelfCast = true }
	--Blood Plague
	self.TargetAura[GetSpellInfo(55078)] = { ActiveAura = "Blood Plague", SelfCast = true }
	--Crypt Fever
	self.TargetAura[GetSpellInfo(50510)] = { ModType = "Special" }	
	--Ebon Plague
	self.TargetAura[GetSpellInfo(51726)] = { ModType = "Special" }
	--Snares
	--Icy Clutch
	--Desecration
	--Glyph of Heart Strike
	self.TargetAura[GetSpellInfo(50434)] = 	{ ActiveAura = "Snare", Spells = GetSpellInfo(45902), Manual = "Snared" }
	self.TargetAura[GetSpellInfo(55784)] = 	self.TargetAura[GetSpellInfo(50434)]
	self.TargetAura[GetSpellInfo(58617)] = 	self.TargetAura[GetSpellInfo(50434)]
	--Infected Wounds
	--Frostfire bolt
	--Frostbolt
	--Slow
	self.TargetAura[GetSpellInfo(58179)] = 	self.TargetAura[GetSpellInfo(50434)]
	self.TargetAura[GetSpellInfo(47610)] = 	self.TargetAura[GetSpellInfo(50434)]
	self.TargetAura[GetSpellInfo(116)] = 	self.TargetAura[GetSpellInfo(50434)]
	self.TargetAura[GetSpellInfo(31589)] = 	self.TargetAura[GetSpellInfo(50434)]
--Special aura handling	
	--Bloody Vengeance
	self.Calculation[GetSpellInfo(50447)] = function( calculation, _, _, index, apps, _, rank )
		if index then
			GT:SetUnitBuff("player", index)
			local _, _, amount = GT:Find("(%d+)%%")
			amount = tonumber(amount) or apps * 3
			if calculation.physical then
				calculation.dmgM_Extra = calculation.dmgM_Extra / (1 + amount/100)
			else
				calculation.dmgM = calculation.dmgM / (1 + amount/100)
			end										
		end
	end
	--Crypt Fever
	self.Calculation[GetSpellInfo(50510)] = function( calculation, ActiveAuras, _, index, _, _, rank )
		if calculation.subType == "Disease" and not ActiveAuras["Disease bonus"] then
			rank = rank and tonumber(string_match(rank,"%d+")) or 3
			calculation.dmgM_Extra = calculation.dmgM_Extra * (1 + 0.1 * rank)
			ActiveAuras["Disease bonus"] = true
		end
		if index then
			local unit = select(8,UnitDebuff("target",index))
			if unit and UnitIsUnit("player",unit) then 	
				ActiveAuras["Crypt Fever"] = true
			end
		else
			ActiveAuras["Crypt Fever"] = true
		end
	end
	--Ebon Plague
	self.Calculation[GetSpellInfo(51735)] = function( calculation, ActiveAuras, _, index, _, _, rank )
		if not ActiveAuras["+13% dmg"] then
			if calculation.school == "Frost" or calculation.school == "Shadow" then
				--TODO: Rank detection?
				calculation.dmgM = calculation.dmgM * 1.13
				ActiveAuras["+13% dmg"] = true
			elseif calculation.subType == "Disease" then
				calculation.dmgM_Extra = calculation.dmgM_Extra * 1.13
				ActiveAuras["+13% dmg"] = true
			end
		end
		if calculation.subType == "Disease" and not ActiveAuras["Disease bonus"] then
			calculation.dmgM_Extra = calculation.dmgM_Extra * 1.3
			ActiveAuras["Disease bonus"] = true
		end
		if index then
			local unit = select(8,UnitDebuff("target",index))
			if unit and UnitIsUnit("player",unit) then 	
				ActiveAuras["Ebon Plague"] = true
			end
		end
	end
	
	self.spellInfo = {
		--BLOOD
		[GetSpellInfo(45902)] = {
				["Name"] = "Blood Strike",
				[0] = { Melee = true, WeaponDamage = 0.4, bonusPercent =  0.125 },
				[1] = { 104 },
				[2] = { 118 },
				[3] = { 138.8 },
				[4] = { 164.4 },
				[5] = { 250 },
				[6] = { 305.6 },
		},
		[GetSpellInfo(55050)] = {
				["Name"] = "Heart Strike",
				[0] = { Melee = true, WeaponDamage = 0.5, bonusPercent = 0.1 },
				[1] = { 125 },
				[2] = { 142 },
				[3] = { 167 },
				[4] = { 197.5 },
				[5] = { 300.5 },
				[6] = { 368 },
		},
		[GetSpellInfo(48721)] = {
				["Name"] = "Blood Boil",
				[0] = { School = "Shadow", canCrit = true, SpellAPBonus = 0.06 },
				[1] = { 89, 107, diseaseBonus = 0, spellLevel = 58 }, -- diseaseBonus = 0 until tested
				[2] = { 116, 140, diseaseBonus = 0, spellLevel = 66 }, -- diseaseBonus = 0 until tested
				[3] = { 149, 181, diseaseBonus = 0, spellLevel = 72 }, -- diseaseBonus = 0 until tested
				[4] = { 180, 220, diseaseBonus = 95, spellLevel = 78 },
		},		
		[GetSpellInfo(48982)] = {
				["Name"] = "Rune Tap",
				[0] = { School = { "Shadow", "Healing" }, Cooldown = 60 },
				[1] = { 0, 0 }
		},
		--FROST
		[GetSpellInfo(49020)] = {
				["Name"] = "Obliterate",
				[0] = { Melee = true, WeaponDamage = 0.8, bonusPercent = 0.125 },
				[1] = { 198.4  },
				[2] = { 244  },
				[3] = { 381.6  },
				[4] = { 467.2  },
		},
		[GetSpellInfo(49143)] = {
				["Name"] = "Frost Strike",
				[0] = { School = "Frost", Melee = true, WeaponDamage = 0.6 },
				[1] = { 52.2 },
				[2] = { 61.8 },
				[3] = { 69 },
				[4] = { 85.2 },
				[5] = { 120.6 },
				[6] = { 150 },
		},		
		[GetSpellInfo(56815)] = {
				["Name"] = "Rune Strike",
				[0] = { Melee = true, WeaponDamage = 1.5, APBonus = 0.15, NextMelee = true },
				[1] = { 0 },
		},		
		[GetSpellInfo(45477)] = {
				["Name"] = "Icy Touch",
				[0] = { School = { "Frost", "Frost", "Disease" }, Melee = true, SpellHit = true, SpellCrit = true, APBonus = 0.1, ExtraDamage = 5 * 0.055, E_eDuration = 15, E_Ticks = 3 },
				[1] = { 127, 137, },
				[2] = { 144, 156, },
				[3] = { 161, 173, },
				[4] = { 187, 203, },
				[5] = { 227, 245, },
		},
		[GetSpellInfo(49184)] = {
				["Name"] = "Howling Blast",
				--NOTE: Marked as Disease and E_eDuration for Glyph
				[0] = { School = { "Frost", "Frost", "Disease" }, Melee = true, SpellHit = true, SpellCrit = true, APBonus = 0.2, E_Ticks = 3, E_eDuration = 15, Cooldown = 8 },
				[1] = { 198, 214, },
				[2] = { 324, 352, },
				[3] = { 441, 479, },
				[4] = { 518, 562, },
		},
		--UNHOLY
		[GetSpellInfo(45462)] = {
				["Name"] = "Plague Strike",
				[0] = { School = { "Physical", "Physical", "Disease" }, Melee = true, WeaponDamage = 0.5, E_eDuration = 15, E_Ticks = 3, ExtraDamage = 5 * 0.055 },
				[1] = { 62.5 },
				[2] = { 75.5 },
				[3] = { 89 },
				[4] = { 108 },
				[5] = { 157 },
				[6] = { 189 },
		},
		[GetSpellInfo(49998)] = {
				["Name"] = "Death Strike",
				[0] = { Melee = true, WeaponDamage = 0.75 },
				[1] = { 84 },
				[2] = { 97.5 },
				[3] = { 123.75 },
				[4] = { 187.5 },
				[5] = { 222.75 },
		},
		[GetSpellInfo(55090)] = {
				["Name"] = "Scourge Strike",
				[0] = { School = "Shadow", Melee = true, WeaponDamage = 0.45, bonusPercent = 0.11 },
				[1] = { 151.875 },
				[2] = { 186.75 },
				[3] = { 291.375 },
				[4] = { 357.188 },
		},
		[GetSpellInfo(52375)] = {
				["Name"] = "Death Coil",
				[0] = { School = "Shadow", canCrit = true, SpellAPBonus = 0.15 },
				[1] = { 184, 184, spellLevel = 55 },
				[2] = { 208, 208, spellLevel = 62 },
				[3] = { 275, 275, spellLevel = 68 },
				[4] = { 381, 381, spellLevel = 76 },
				[5] = { 443, 443, spellLevel = 80 },
			["Secondary"] = {
				["Name"] = "Death Coil",
				[0] = { School = { "Shadow", "Healing" }, canCrit = true, SpellAPBonus = 0.15 },
				[1] = { 276, 276, spellLevel = 55 },
				[2] = { 312, 312, spellLevel = 62 },
				[3] = { 412.5, 412.5, spellLevel = 68 },
				[4] = { 571.5, 571.5, spellLevel = 76 },
				[5] = { 664.5, 664.5, spellLevel = 80 },
			},
		},		
		[GetSpellInfo(43265)] = {
				["Name"] = "Death and Decay",
				[0] = { School = "Shadow", canCrit = true, sHits = 10, Cooldown = 30, SpellAPBonus = 0.48 },
				[1] = { 26, 26, spellLevel = 60 },
				[2] = { 34, 34, spellLevel = 67 },
				[3] = { 49, 49, spellLevel = 73 },
				[4] = { 62, 62, spellLevel = 80 },
		},
		[GetSpellInfo(49158)] = {
				["Name"] = "Corpse Explosion",
				[0] = { School = "Shadow", canCrit = true, SpellAPBonus = 0.105 },
				[1] = { 166, 166, spellLevel = 20 },
				[2] = { 192, 192, spellLevel = 60 },
				[3] = { 262, 262, spellLevel = 70 },
				[4] = { 383, 383, spellLevel = 75 },
				[5] = { 443, 443, spellLevel = 80 },
		},

		[GetSpellInfo(49194)] = {
				["Name"] = "Unholy Blight",
				[0] = { School = "Shadow", eDot = true, eDuration = 20, sTicks = 1, SpellAPBonus = 20 * 0.013 },
				[1] = { 420, 420, spellLevel = 60 },
				[2] = { 600, 600, spellLevel = 70 },
				[3] = { 800, 800, spellLevel = 75 },
				[4] = { 960, 960, spellLevel = 80 },
		},
		[GetSpellInfo(49206)] = {
				["Name"] = "Summon Gargoyle",
				[0] = { School = "Nature", BaseIncrease = true, NoAura = true, NoNext = true },
				[1] = { 51, 69, 51, 90, spellLevel = 60 }
		},
	}
	self.talentInfo = {
		--BLOOD
		--Subversion
		[GetSpellInfo(48997)] = { 	[1] = { Effect = 3, Spells = { "Blood Strike", "Heart Strike", "Obliterate" }, ModType = "critPerc", }, },
		--Two-Handed Weapon Specialization
		[GetSpellInfo(55107)] = { 	[1] = { Effect = 0.02, Melee = true, Spells = "All", ModType = "Two-Handed Weapon Specialization" }, },
		--Improved Rune Tap
		[GetSpellInfo(48985)] = {	[1] = { Effect = (1/3), Spells = "Rune Tap", ModType = "Improved Rune Tap", },
						[2] = { Effect = -10, Spells = "Rune Tap", ModType = "cooldown", }, },
		--Bloody Strikes
		[GetSpellInfo(48977)] = {	[1] = { Effect = 0.15, Spells = { "Blood Strike", "Heart Strike" }, },
						[2] = { Effect = 0.1, Spells = "Blood Boil", }, },
		--Improved Death Strike
		[GetSpellInfo(62905)] = {	[1] = { Effect = 0.15, Spells = "Death Strike" }, 
						[2] = { Effect = 3, Spells = "Death Strike", ModType = "critPerc" }, },	
		--Might of Mograine
		[GetSpellInfo(49023)] = {	[1] = { Effect = 0.15, Spells = { "Blood Strike", "Death Strike", "Heart Strike" }, ModType = "critM", }, 
						[2] = { Effect = 0.075, Spells = "Blood Boil", ModType = "critM" }, },
		
		--FROST
		--Improved Icy Touch
		[GetSpellInfo(49175)] = {	[1] = { Effect = 0.05, Spells = "Icy Touch", ModType = "dmgM_dd_Add" }, },
		--Black Ice
		[GetSpellInfo(49140)] = {	[1] = { Effect = 0.02, Spells = { "Frost", "Shadow" }, }, },
		--Nerves of Cold Steel
		[GetSpellInfo(49226)] = {	[1] = { Effect = 1, Spells = "All", Melee = true, ModType = "Nerves of Cold Steel" },	
						[2] = { Effect = 0.05, Spells = "Attack", Melee = true, ModType = "offHdmgM", Multiply = true  }, NoManual = true },
		--Annihilation
		[GetSpellInfo(51468)] = {	[1] = { Effect = 1, Spells = { "Scourge Strike", "Death Strike", "Plague Strike", "Rune Strike", "Frost Strike", "Obliterate", "Heart Strike", "Blood Strike" }, Melee = true, ModType = "critPerc" }, },						
		--Glacier Rot
		[GetSpellInfo(49471)] = {	[1] = { Effect = { 0.07, 0.13, 0.2 }, Spells = { "Icy Touch", "Howling Blast", "Frost Strike" }, ModType = "Glacier Rot" }, },
		--Merciless Combat
		[GetSpellInfo(49024)] = {	[1] = { Effect = 0.06, Spells = { "Icy Touch", "Howling Blast", "Obliterate", "Frost Strike" }, ModType = "Merciless Combat" }, },
		--Rime
		[GetSpellInfo(49188)] = {	[1] = { Effect = 5, Spells = { "Icy Touch", "Obliterate" }, ModType = "critPerc" }, },
		--Blood of the North
		[GetSpellInfo(54639)] = {	[1] = { Effect = 0.03, Spells = { "Blood Strike", "Frost Strike" } }, },
		--Guile of Gorefiend
		[GetSpellInfo(50187)] = {	[1] = { Effect = 0.15, Spells = { "Blood Strike", "Frost Strike", "Howling Blast", "Obliterate" }, ModType = "critM", }, },
		--Tundra Stalker
		[GetSpellInfo(49202)] = {	[1] = { Effect = 0.03, Spells = "All", Specials = true, ModType = "Tundra Stalker" }, },
		
		--UNHOLY
		--Vicious Strikes
		[GetSpellInfo(51745)] = {	[1] = { Effect = 3, Melee = true, Spells = { "Plague Strike", "Scourge Strike" }, ModType = "critPerc" },
						[2] = { Effect = 0.15, Melee = true, Spells = { "Plague Strike", "Scourge Strike" }, ModType = "critM" }, },
		--Virulence
		[GetSpellInfo(48962)] = {	[1] = { Effect = 1, Spells = { "Blood Boil", "Icy Touch", "Death and Decay", "Howling Blast", "Death Coil", "Unholy Blight", "Corpse Explosion" }, ModType = "hitPerc" }, },
		--Epidemic
		[GetSpellInfo(49562)] = {	[1] = { Effect = 3, Spells = { "Icy Touch", "Plague Strike", "Howling Blast" }, ModType = "E_eDuration" }, },		
		--Morbidity
		[GetSpellInfo(48963)] = {	[1] = { Effect = 0.05, Spells = "Death Coil" },
						[2] = { Effect = -5, Spells = "Death and Decay", ModType = "cooldown" }, },
		--Outbreak
		[GetSpellInfo(49013)] = {	[1] = { Effect = 0.1, Spells = "Plague Strike", ModType = "dmgM_dd_Add" },
						[2] = { Effect = { 0.07, 0.13, 0.2 }, Spells = "Scourge Strike" }, },		
		--Necrosis
		[GetSpellInfo(51459)] = {	[1] = { Effect = 0.04, Spells = "Attack", ModType = "Necrosis" }, },
		--Blood-Caked Blade
		[GetSpellInfo(49627)] = {	[1] = { Effect = 0.1, Spells = "Attack", ModType = "Blood-Caked Blade" }, },
		--Impurity
		[GetSpellInfo(49220)] = {	[1] = { Effect = 0.04, Spells = "All", ModType = "Impurity" },
						[2] = { Effect = 0.04, Spells = "All", ModType = "spellAPBonus", Multiply = true, Caster = true }, },
		--Wandering Plague
		[GetSpellInfo(49217)] = {	[1] = { Effect = { 1/3, 2/3, 1 }, Melee = true, Spells = "Disease", ModType = "Wandering Plague" }, },
		--Rage of Rivendare
		[GetSpellInfo(50117)] = {	[1] = { Effect = 0.02, Spells = "All", ModType = "Rage of Rivendare" }, },

	}
end